package com.fx.ruankao.mapper;

import com.fx.ruankao.entity.SysConfig;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

/**
 * 系统配置Mapper接口
 * 对应数据库表：sys_config
 */
@Mapper
public interface SysConfigMapper {
    
    /**
     * 新增系统配置
     * @param sysConfig 系统配置实体
     * @return 受影响的行数
     */
    int insert(SysConfig sysConfig);
    
    /**
     * 根据ID删除系统配置
     * @param id 配置ID
     * @return 受影响的行数
     */
    int deleteById(Integer id);
    
    /**
     * 更新系统配置
     * @param sysConfig 系统配置实体
     * @return 受影响的行数
     */
    int update(SysConfig sysConfig);
    
    /**
     * 根据ID查询系统配置
     * @param id 配置ID
     * @return 系统配置实体
     */
    SysConfig selectById(Integer id);
    
    /**
     * 根据配置键查询系统配置
     * @param configKey 配置键
     * @return 系统配置实体
     */
    SysConfig selectByConfigKey(String configKey);
    
    /**
     * 查询所有系统配置
     * @return 系统配置列表
     */
    List<SysConfig> selectAll();
    
    /**
     * 根据配置类型查询系统配置列表
     * @param configType 配置类型
     * @return 系统配置列表
     */
    List<SysConfig> selectByConfigType(String configType);
    
    /**
     * 批量更新系统配置
     * @param sysConfigs 系统配置列表
     * @return 受影响的行数
     */
    int batchUpdate(List<SysConfig> sysConfigs);
    
    /**
     * 检查配置键是否存在
     * @param configKey 配置键
     * @param id 配置ID（可选，用于排除当前记录）
     * @return 存在数量
     */
    int checkConfigKeyExists(String configKey, Integer id);
}